<?php
require_once ('./Model/LoginHandler.php');
require_once ('./View/LoginView.php');
require_once ('./Model/RegModel.php');
require_once ('./View/RegView.php');

class TestAll{
	private $test_db;
	
	public function __construct(){
		$this->test_db = new mysqli('localhost', 'root', '', 'loginmvctest');
	}
	//Kontrollerar alla funktioner i LoginHandler, om fel uppstår skrivs ett passande felmeddelande ut samt 
	//returneras false, uppstår inga fel returneras true
	public function TestLogin(){
		$loginHandler = new LoginHandler($this->test_db);
		
		$loginHandler->DoLogout();
		
		if($loginHandler->IsLoggedIn() == true){
			echo 'DoLogout eller IsLoggedIn test misslyckat, användaren är fortfarande inloggad efter utloggning.<br />';
			return false;
		}
		if($loginHandler->DoLogin('dontexist', 'password') == true){
			echo 'DoLogin test misslyckat, inloggning sker trotts felaktiga uppgifter.<br />';
			return false;
		}	
		if($loginHandler->DoLogin('testuser', '159753') == false){
			echo 'DoLogin test misslyckat, inloggning misslyckas trotts korrekta uppgifter.<br />';
			return false;
		}	
		if($loginHandler->IsLoggedIn() == false){
			echo 'IsLoggedIn test misslyckat, användaren är ej inloggad trotts korrekta uppgifter.<br />';
			return false;
		}	
		
		$loginHandler->DoLogout();
		
		return true;
	}
	public function TestRegister(){
		$regModel = new RegModel($this->test_db);
		
		if($regModel->UsernameExist('testuser') == true){
			echo 'UsernameExist test misslyckades, användare i databasen visas inte trotts att den finns.<br />';
			return false;
		}
		if($regModel->DoRegister('newuser', '159753') == false){
			echo 'DoRegister test misslyckades, ny användare kunde inte registreras i databasen.<br />';
			return false;			
		}
		if($regModel->RemoveUser('newuser') == false){
			echo 'RemoveUser test misslyckades, användare kunde inte tas bort.<br />';
			return false;			
		}
		return true;		
	}
}

$testAll = new TestAll();

if ($testAll->TestLogin() == true) {
	echo "<p>Logintest ok</p>";
} else {
	echo "<p>Logintest fungerar ej</p>";
}

if ($testAll->TestRegister() == true) {
	echo "<p>Registreringstest ok</p>";
} else {
	echo "<p>Registreringstest fungerar ej</p>";
}
?>

